package com.dragon.utilslibrary;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.util.Log;

import com.dragon.utilslibrary.crashhandler.CrashExceptionHandler;
import com.dragon.utilslibrary.events.PropertyObservable;
import com.dragon.utilslibrary.tools.AppUtils;


public class AppConfig {
    public static Handler mHandler;
    /**
     * 全局Context对象
     */
    public static Context mContext;
    /**
     * pid作用相当于appid，用于区别不同的项目标识
     */
    public static String PID;
    /**
     * 环境选择（1：开发环境，2：测试环境，3：正式环境）
     */
    public static String IP;
    /**
     * SD卡文件根目录名称
     */
    public static String rootFile = "fenda";
    /**
     * 是否向控制台打印log，1是，0否
     */
    public static String debugLog = "1";
    /**
     * 是否向控制台打印log，1是，0否
     */
    public static boolean saveLog = true;
    /**
     * 是否上传log到服务器，1是，0否
     */
    public static String uploadLog;
    /**
     * 升级时下载的apk文件名
     */
    public static String apkFileName;
    /**
     * 升级时下载的ble文件名
     */
    public static String bleFileName;
    /**
     * 海外版本
     */
    public static boolean isOverseasMode = false;
    /**
     * 是否使用网络，默认使用
     */
    public static boolean is_net = true;
    /**
     * app版本名称
     */
    public static String versionName;

    /**
     * 判断当前应用是否是debug状态
     */
    public static boolean FLAG_DEBUGGABLE;
    /**
     * 当前APP是否在前台运行
     * true 前台
     * false 后台或不运行
     */
    public static boolean isRunFrontDesk;

    public static void init(Context context) {
        PropertyObservable.getInstance();
        mHandler = new Handler();
        mContext = context.getApplicationContext();
        CrashExceptionHandler.getInstance().init(mContext);
        versionName = getAppVersionName(mContext);
        FLAG_DEBUGGABLE = AppUtils.isApkInDebug(mContext);
    }

    public static void text2() {
        Log.i("text", "text1: ");
    }

    /**
     * 返回当前程序版本名
     */
    private static String getAppVersionName(Context context) {
        String versionName = "";
        try {
            // ---get the package info---
            PackageManager pm = context.getPackageManager();
            PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
            versionName = pi.versionName;
            int versioncode = pi.versionCode;
            if (versionName == null || versionName.length() <= 0) {
                return "";
            }
        } catch (Exception e) {
        }
        return versionName;
    }


}
